package proyecto.gestionarDatosDeCursos;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import proyecto.BusinessLogic.CursoBLRemote;

    
  
public class AltaCursoForm extends ActionForm {
	private int idCurso;
	private String nombre;
	private String descripcion;
	private String fechaAlta;
	//private int nivelSeleccionado;
	//private String nombreNivelSeleccionado;
	//private Collection niveles;
	//private Collection nivelesSeleccionados;
	private Collection requisitos;
	//private Collection temas;
	
	
		
	public AltaCursoForm() {
		super();
		// TODO Auto-generated constructor stub
	}
	

	public int getIdCurso() {
		return idCurso;
	}
	
	public void setIdCurso(int idCurso) {
		this.idCurso = idCurso;
	}
	
	public String getDescripcion() {
		return descripcion;
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	

	public String getFechaAlta() {
		return fechaAlta;
	}


	public void setFechaAlta(String fechaAlta) {
		this.fechaAlta = fechaAlta;
	}


	/*public int getNivelSeleccionado() {
		return nivelSeleccionado;
	}

	public void setNivelSeleccionado(int nivelSeleccionado) {
		this.nivelSeleccionado = nivelSeleccionado;
	}*/
		
	/*public String getNombreNivelSeleccionado() {
		return nombreNivelSeleccionado;
	}

	public void setNombreNivelSeleccionado(String nombreNivelSeleccionado) {
		this.nombreNivelSeleccionado = nombreNivelSeleccionado;
	}*/

	/*public Collection getNiveles() {
		return niveles;
	}

	public void setNiveles(Collection niveles) {
		this.niveles = niveles;
	}*/
		
	public Collection getRequisitos() {
		return requisitos;
	}
	
	/*public Collection getNivelesSeleccionados() {
		return nivelesSeleccionados;
	}

	public void setNivelesSeleccionados(Collection nivelesSeleccionados) {
		this.nivelesSeleccionados = nivelesSeleccionados;
	}*/

	public void setRequisitos(Collection requisitos) {
		this.requisitos = requisitos;
	}
		
	/*public Collection getTemas() {
		return temas;
	}

	public void setTemas(Collection temas) {
		this.temas = temas;
	}
*/

	public void reset(ActionMapping mapping,
			HttpServletRequest request) {
			idCurso=0;
			nombre=null;
			descripcion=null;		
			fechaAlta=null;
			//nivelSeleccionado=0;	
			//nombreNivelSeleccionado=null;
			//niveles = new ArrayList();
			//nivelesSeleccionados = new ArrayList();
			requisitos = new ArrayList();
			//temas = new ArrayList();
	}
	
	
	public ActionErrors validate(
			ActionMapping mapping,
			HttpServletRequest request) {
		
		CursoBLRemote cursoBLRemote = null;
		final Context context;	
		
		ActionErrors errors = new ActionErrors();
		
		//valida si el campo nombre es vacio
		if (nombre==null || nombre.trim().equals("")){
			errors.add("nombre",
			new ActionError(
			"AltaCurso.nombre.problem"));			
		}
		
		//valida si el curso ingresado ya existe en bd		
		try
		{							
			context = new InitialContext();					
			cursoBLRemote = (CursoBLRemote) context.lookup("CursoBL/remote");
			
			List cursos = cursoBLRemote.findByName(nombre);
			if (cursos.size() > 0)
			{			
				errors.add("nombre",
						new ActionError(
						"AltaCurso.curso.problem"));
			}
			
		} catch (NamingException e)				{
			e.printStackTrace();
			throw new RuntimeException(e);				
		}
		
		return errors;
	}
}
